#include <vector>
using namespace std;
/*
 * @lc app=leetcode.cn id=48 lang=cpp
 *
 * [48] 旋转图像
 */

// @lc code=start
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int sz = matrix.size();
        for (int r = 0; r < sz / 2; r++) {
            for (int i = sz - r - 1; i >= r; i--) {
                swap(matrix[r][i], matrix[i][sz - r - 1]);
            }
            for (int i = sz - r - 1; i > r; i--) {
                swap(matrix[i][r], matrix[r][sz - i - 1]);
            }

            for (int i = r + 1; i < sz - r - 1; i++) {
                swap(matrix[sz - r - 1][i], matrix[i][r]);
            }
        }

    }
    //   15 13 2 5
    //   7       1
    //   10      9
    //   16 14 12 11
    //
};
// @lc code=end

